next up previous
Next: A Taxonomy for Up: Hardware for Accelerating OpenGL Previous: Hardware for Accelerating OpenGL

The Graphics Pipeline

In simple terms, OpenGL describes a graphics pipeline for performing graphics operations (OpenGL commands) to affect pixels in a frame buffer. A graphics pipeline is a logical model for decomposing graphics operations. In general, all graphics systems are organized using some type of pipeline partitioning scheme. In a broader sense (not limited to OpenGL), the general graphics pipeline can be partitioned into five stages:

  1. Generation (G), creation, acquisition, or modification of the information to be displayed and organizing this information into application data structures.

  2. Traversal (T) of application data structures, passing on the appropriate graphics data.

  3. Transformation (X) of the graphics data from object-space coordinates into eye-space coordinates, performing requested lighting operations, then clipping the transformed data in clip-space, and projecting the resulting coordinates into window-space.

  4. Rasterization (R) renders window-space primitives (like points, lines, polygons) into a frame buffer. Iterating per-vertex shading calculations, texture lookups and calculations, and per-pixel operations like depth testing are performed in this stage.

  5. Display (D) scans the resulting pixels in the frame buffer, typically to a display monitor.

The stages make up a rendering pipeline because the outputs from one stage are the inputs for the next stage. The letters G, T, X, R, and D are used to abbreviate these stages.

An OpenGL graphics pipeline is actually a subset of the general graphics pipeline, specifying the last three stages. OpenGL leaves the generation and traversal stages to the application program since these stages are highly dependent on the particular data to be displayed and how it is organized. Tasks that are varied and highly application dependent are best left to the system's general purpose processor.gif Figure 1 shows how the components of the OpenGL state machine map to the general graphics pipeline. Higher-level libraries like Open Inventor [11] and IRIS Performer [8] can assist applications with the generation and traversal stages.





next up previous
Next: A Taxonomy for Up: Hardware for Accelerating OpenGL Previous: Hardware for Accelerating OpenGL



mjk@sgi.com